package geometrie;

public class Rechteck extends Figur2D
{

    private int breite, laenge;

    public int getBreite()
    {
        return breite;
    }

    public void setBreite(int breite)
    {
        this.breite = breite < 1 ? 1 : breite;
    }

    public int getLaenge()
    {
        return laenge;
    }

    public void setLaenge(int laenge)
    {
        this.laenge = laenge < 1 ? 1 : laenge;
    }

    public Rechteck(Punkt bezug, int breite, int laenge)
    {
        super(bezug);
        this.breite = breite < 1 ? 1 : breite;
        this.laenge = laenge < 1 ? 1 : laenge;
    }

    public double diagonalenLaenge()
    {
        return Math.sqrt(Math.pow(breite, 2) + Math.pow(laenge, 2));
    }

    public boolean flaecheKleinerAls(Figur2D f)
    {
        if (f != null)
        {
            if (flaeche() < f.flaeche())
            {
                return true;
            }
        }
        return false;
    }

    public boolean umfangKleinerAls(Figur2D f)
    {
        if (f != null)
        {
            if (umfang() < f.umfang())
            {
                return true;
            }
        }
        return false;
    }

    public boolean liegtPunktInRechteck(Punkt p)
    {
        int x4 = Rechteck.this.getBezug().getXKoordinate();
        int y4 = Rechteck.this.getBezug().getYKoordinate();
        int x3 = x4 + Rechteck.this.getLaenge();
        int y1 = y4 - Rechteck.this.getBreite();
        if (p != null)
        {
            int xp = p.getXKoordinate();
            int yp = p.getYKoordinate();
            if (xp > x4 && xp < x3 && yp < y4 && yp > y1)
            {
                return true;
            }
        }
        return false;
    }

    @Override
    public double umfang()
    {
        return 2 * laenge + 2 * breite;
    }

    @Override
    public double flaeche()
    {
        return laenge * breite;
    }
}
